package it.scambiocorse.utils;

import java.util.Properties;

import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;

import org.apache.log4j.Logger;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.MailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.mail.MailException;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessagePreparator;


import it.scambiocorse.model.ServizioMail;
import it.scambiocorse.model.ServizioType;
import it.scambiocorse.model.UtenteType;

public class InviaEmail {
    private JavaMailSender mailSender;
    
    public void setMailSender(JavaMailSender mailSender) {
        this.mailSender = mailSender;
    }
	


	final Logger logger = Logger.getLogger(getClass());

	public boolean inviaServizio(ServizioType s, boolean isRegistered) {
		 boolean ret = true;
		 String metodo = "inviaServizio(...) -";
		 logger.debug(metodo+"Inizio");
		 try { 
		MimeMessage message = mailSender.createMimeMessage();
 
		String toAddress = s.getAutista().getEmail();
		message.setSubject("Hai ricevuto un servizio da "+s.getUserNameInse());
		
				
//		// use the true flag to indicate you need a multipart message
		MimeMessageHelper helper = new MimeMessageHelper(message, true);
		helper.setTo(toAddress);
//		// use the true flag to indicate the text included is HTML
		helper.setText(new ServizioMail(s,isRegistered).getMessaggio(), true);
		
		mailSender.send(message);
		 logger.debug(metodo+"Fine, messaggio inviato.");

		
		 } catch (Exception e) {
			 logger.error(metodo+"Si e' verificato un errore, messaggio NON inviato");
			 ret = false;
			 e.printStackTrace();
		}	

		
		
		
		return ret;
	
	}
	
	
	
	
	public boolean inviaVerifica(UtenteType u, String activation) {
		 boolean ret = true;
		 String metodo = "inviaVerifica(...) -";
		 logger.debug(metodo+"Inizio");
		 try { 
		MimeMessage message = mailSender.createMimeMessage();

		String toAddress = u.getEmail();
		message.setSubject("Benvenuto in ScambioCorse.it ");
		
				
		MimeMessageHelper helper = new MimeMessageHelper(message, true);
		helper.setTo(toAddress);
		String msg =  		"<html><body><center><H1>Registrazione effettuata con successo!</h1>" +
							"<table border=\"0\"><tr>" +
							"<td><label>Login: </label></td><td>"+u.getEmail()+" </td></tr><tr>" +
							"<td><label>Password: </label></td> <td>"+u.getPass()+"</td></tr><tr>" +
							"<td><label>Nome: </label></td><td>"+u.getNome()+" </td></tr><tr>" +
							"<td><label>Cognome:</label></td><td>"+u.getCognome()+" </td></tr></table>" +
							"<br /><br />"+
							"Conserva la password perche' quella salvata nei nostri database e' criptata e vi si puo' risalire solo partendo dall'originale."+
							"<br />" +
							"Devi attivare il tuo account per darci la certezza che l'email che hai inserito e' la tua, copia  e incolla il seguente codice non appena " +
							"sarai entrato nel sito:" +
							"<br /><br />" +
							"<strong>"+activation+"</strong>"+
							"<br /><br />"+
							"Accedi subito <a href=\"http://www.scambiocorse.it\">www.ScambioCorse.it</a>"+
							"</center></body></html>";
		
		
//		// use the true flag to indicate the text included is HTML
		helper.setText(msg, true);
		
		mailSender.send(message);
		logger.debug(metodo+"Fine, messaggio inviato.");

		
		 } catch (MessagingException e) {
			 logger.error(metodo+"Si e' verificato un errore, messaggio NON inviato");
			 ret = false;
			 e.printStackTrace();
		}	
		
		return ret;
	
	}	
	  
	  
}
